#include <stdio.h>

#define SIZE 3

// 函数：矩阵转置
void transpose(int *matrix, int *result) {
    for (int i = 0; i < SIZE; i++) {
        for (int j = 0; j < SIZE; j++) {
            // 计算原矩阵和转置矩阵的位置并交换
            *(result + j * SIZE + i) = *(matrix + i * SIZE + j);
        }
    }
}

// 函数：打印矩阵
void printMatrix(int *matrix) {
    for (int i = 0; i < SIZE; i++) {
        for (int j = 0; j < SIZE; j++) {
            printf("%d ", *(matrix + i * SIZE + j));
        }
        printf("\n");
    }
}

int main() {
    int matrix[SIZE][SIZE];
    int result[SIZE][SIZE];

    // 输入原始矩阵
    printf("input 3x3 matrix:\n");
    for (int i = 0; i < SIZE; i++) {
        for (int j = 0; j < SIZE; j++) {
            printf("matrix[%d][%d]: ", i, j);
            scanf("%d", &matrix[i][j]);
        }
    }

    // 进行矩阵转置
    transpose((int *)matrix, (int *)result);

    // 输出转置后的矩阵
    printf("\nafter transpose:\n");
    printMatrix((int *)result);

    return 0;
}
